
package entidadesDAO;

import baseDeDatosJDBC.AdministradorDeConexiones;
import entidades.Datos;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

public class DatosDao extends Datos {

    //Obtiene todos los datos en la tabla datos
    public ArrayList<Datos> obtenerTodos(Connection conn) throws Exception {
        ArrayList<Datos> lista = new ArrayList();

        String query = "SELECT * FROM datos";
        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery(query);
        while (rs.next()) {

            int anio = rs.getInt("anio");
            int provincia = rs.getInt("provincia");
            int id_departamento = rs.getInt("id_departamento");
            int id_establecimiento = rs.getInt("id_establecimiento");
            int id_servicio = rs.getInt("id_servicio");
            int orden = rs.getInt("orden");
            int mes = rs.getInt("mes");
            int id_area = rs.getInt("id_area");
            int horas = rs.getInt("horas");
            int hoja = rs.getInt("hoja");
            int C_nuevas = rs.getInt("C_nuevas");
            int C_repetidas = rs.getInt("C_repetidas");
            int C_mas_men_1 = rs.getInt("C_mas_men_1");
            int C_fem_men_1 = rs.getInt("C_fem_men_1");
            int C_mas_1 = rs.getInt("C_mas_1");
            int C_fem_1 = rs.getInt("C_fem_1");
            int C_mas_2a4 = rs.getInt("C_mas_2a4");
            int C_fem_2a4 = rs.getInt("C_fem_2a4");
            int C_mas_5a9 = rs.getInt("C_mas_5a9");
            int C_fem_5a9 = rs.getInt("C_fem_5a9");
            int C_mas_10a14 = rs.getInt("C_mas_10a14");
            int C_fem_10a14 = rs.getInt("C_fem_10a14");
            int C_mas_15a49 = rs.getInt("C_mas_15a49");
            int C_fem_15a49 = rs.getInt("C_fem_15a49");
            int C_mas_may_50 = rs.getInt("C_mas_may_50");
            int C_fem_may_50 = rs.getInt("C_fem_may_50");
            int C_1_vez = rs.getInt("C_1_vez");
            int C_ult_vez = rs.getInt("C_ult_vez");
            int C_total = rs.getInt("C_total");
            int T_control_embarazo = rs.getInt("T_control_embarazo");
            

            Datos dat = new Datos (anio, provincia, id_departamento, id_establecimiento,+
                    id_servicio, orden, mes, id_area, horas, hoja, C_nuevas, C_repetidas,+
                    C_mas_men_1, C_fem_men_1, C_mas_1, C_fem_1, C_mas_2a4, C_fem_2a4, +
                    C_mas_5a9, C_fem_5a9, C_mas_10a14, C_fem_10a14, C_mas_15a49, +
                    C_fem_15a49, C_mas_may_50, C_fem_may_50, C_1_vez, C_ult_vez, +
                    C_total, T_control_embarazo );
//            dat.setId(id);
            lista.add(dat);
        }
//            ArrayList<Datos> lista = datdao.obtenerTodos(conn);
//        for (Datos datos : lista) {
//            System.out.println(datos);
//        }
        st.close();
        conn.close();
        return lista;
    }
        
        //Inserta datos en la tabla datos en la tabla servicio
    
//        public void insertar (Connection conn) throws Exception{
//    
//    String query = "INSERT INTO `siesca`.`datos`"
//            +"(`anio`, `provincia`, `id_departamento`, `id_establecimiento`,"
//            +"`id_servicio`, `orden`, `mes`, `id_area`, `horas`, `hoja`, "
//            +"`C_nuevas`, `C_repetidas`, `C_mas_men_1`, `C_fem_men_1`, "
//            +"`C_mas_1`, `C_fem_1`, `C_mas_2a4`, `C_fem_2a4`, `C_mas_5a9`, "
//            +"`C_fem_5a9`, `C_mas_10a14`, `C_fem_10a14`, `C_mas_15a49`, "
//            +"`C_fem_15a49`, `C_mas_may_50`, `C_fem_may_50`, `C_1_vez`, "
//            +"`C_ult_vez`, `C_total`, `T_control_embarazo`) "
//            +"VALUES ('1', '10', '"+getid_departamento()+"', '"+getid_establecimiento()+"', "
//            +"'"+id_servicio()+"', '"+orden()+"', '"+mes()+"',"
//            +"'"+id_area()+"', '"+horas()+"', '"+hoja()+"', "
//            +"'"+C_nuevas()+"', '"+C_repetidas()+"', '"+C_mas_men_1()+"', "
//            +"'"+C_fem_men_1()+"', '"+C_mas_1()+"', '"+C_fem_1()+"', "
//            +"'"+C_mas_2a4()+"', '"+C_fem_2a4()+"', '"+C_mas_5a9()+"', "
//            +"'"+C_fem_5a9()+"', '"+C_mas_10a14()+"', '"+C_fem_10a14()+"', "
//            +"'"+C_mas_15a49()+"', '"+C_fem_15a49()+"', '"+C_mas_may_50()+"', "
//            +"'"+C_fem_may_50()+"', '"+C_1_vez()+"', '"+C_ult_vez()+"', "
//            +"'"+C_total()+"', '"+T_control_embarazo()+"');";
//     
//        Statement st = conn.createStatement();
//        st.execute(query);
//        st.close();
//        conn.close();
//        }
        
//    public void actualizar(Connection conn) throws Exception {
//
//      String query = "UPDATE `siesca`.`datos` SET `horas`='"+getDescripcion()+"', "
//              +"`hoja`='"+getDescripcion()+"', `C_nuevas`='"+getDescripcion()+"', "
//              +"`C_repetidas`='"+getDescripcion()+"', `C_mas_men_1`='"+getDescripcion()+"', "
//              +"`C_fem_men_1`='"+getDescripcion()+"', `C_mas_1`='"+getDescripcion()+"', "
//              +"`C_fem_1`='"+getDescripcion()+"', `C_mas_2a4`='"+getDescripcion()+"', "
//              +"`C_fem_2a4`='"+getDescripcion()+"', `C_mas_5a9`='"+getDescripcion()+"', "
//              +"`C_fem_5a9`='"+getDescripcion()+"', `C_mas_10a14`='"+getDescripcion()+"', "
//              +"`C_fem_10a14`='"+getDescripcion()+"', `C_mas_15a49`='"+getDescripcion()+"', "
//              +"`C_fem_15a49`='"+getDescripcion()+"', `C_mas_may_50`='"+getDescripcion()+"', "
//              +"`C_fem_may_50`='"+getDescripcion()+"', `C_1_vez`='"+getDescripcion()+"', "
//              +"`C_ult_vez`='"+getDescripcion()+"', `C_total`='"+getDescripcion()+"', "
//              +"`T_control_embarazo`='"+getDescripcion()+"' "
//              +"WHERE `id_departamento`='"+getDescripcion()+"' and`id_establecimiento`='"+getDescripcion()+"' "
//              +"and`id_servicio`='"+getDescripcion()+"' and`orden`='"+getDescripcion()+"'"
//              +"and`mes`='"+getDescripcion()+"';";  
//      
//      Statement st = conn.createStatement();
//        st.execute(query);
//        st.close();
//    }
    
//    public boolean obtenerPorId(Connection conn) throws Exception {
//        boolean exist = false;
//        String query = "select * from datos WHERE `id_departamento`='"+getDescripcion()+"' and`id_establecimiento`='"+getDescripcion()+"' "
//              +"and`id_servicio`='"+getDescripcion()+"' and`orden`='"+getDescripcion()+"'"
//              +"and`mes`='"+getDescripcion()+"';";
//        Statement st = conn.createStatement();
//        ResultSet rs = st.executeQuery(query);
//        while (rs.next()) {
//            int id = rs.getInt("id");
//            String descripcion = rs.getString("descripcion");
//            setDescripcion(descripcion);
//            exist = true;
//        }
//        st.close();
//        return exist;
//    }

//    public void eliminar(Connection conn) throws Exception {
//
//        String query ="DELETE FROM `siesca`.`datos` "
//                +"WHERE `id_departamento`='"+getDescripcion()+"' "
//                +"and`id_establecimiento`='"+getDescripcion()+"' "
//                +"and`id_servicio`='"+getDescripcion()+"' and "
//                +"`orden`='"+getDescripcion()+"' and`mes`='"+getDescripcion()+"';";
//        Statement st = conn.createStatement();
//        st.execute(query);
//        st.close();
//    }
        public static void main(String[] args) {
            
            DatosDao datdao = new DatosDao();
            try {
                Connection conn = AdministradorDeConexiones.obtenerConexion();
//                System.out.println("Lectura de la lista de datos");
                ArrayList<Datos> lista = datdao.obtenerTodos(conn); //null; 
                for (Datos dato: lista) {
                    System.out.println(dato);
                
                }

                //inserta un nuevo registro
//                datdao.setId(450);
//                datdao.setDescripcion("Accidentologia");
//                datdao.insertar(conn);
//                lista = datdao.obtenerTodos(conn);
                
//                datdao.setId(450);
//                if (datdao.obtenerPorId(conn))
//                    System.out.println(" el reg existe");
//                else 
//                    System.out.println("El registro no existe");
                
                
                // Actualiza el registro de id =1
                
//                datdao.setId(1);
//                datdao.setDescripcion("Alergología");
//                datdao.actualizar(conn);

//                if (datdao.obtenerPorId(conn)) {
//                    datdao.actualizar(conn);
//                }
//               lista = datdao.obtenerTodos(conn);
                
                //elimina un registro
//                datdao.setId(450);
//                datdao.eliminar(conn);
//                lista = datdao.obtenerTodos(conn);

                //eliminar varios registros o todos
//                for (Datos datos : lista) {
//                    datdao.setId(datos.getId());
//                    System.out.println("" + datdao);
//                    datdao.eliminar(conn);
//                }
               
               
                conn.close();
            } catch (Exception er) {
                System.out.println("No se puede establecer la conexión");
                System.out.println("" + er.getMessage());
                er.printStackTrace();
            }
    }
}
